#!/data/data/com.termux/files/usr/bin/bash
ubuntu_version=""
# 将 Termux 软件源更改为清华大学 TUNA 镜像源
cd $HOME
# 更新 Termux 软件包列表并升级已安装的软件包
pkg update -y && pkg upgrade -y

# 安装必要的软件包
pkg install proot git axel openssl-tool openssh screenfetch  net-tools  -y
#设置termux的root密码
#询问用户是否要设置SSH的
# 下载启动脚本和软件源列表
curl -sL https://gitee.com/Liplay-1/termux-install-ubuntu/raw/master/start.sh > $HOME/start.sh

echo "是否要开启SSH服务？(y/n)"
read -p "> " ssh
if  [ $ssh = "y" ]; then
    pkg install net-tools -y
    ip_addr=$(ifconfig | grep 'wlan0' -A 1 | grep 'inet ' | awk '{print $2}' | head -1)
    echo "设置termux的root密码"
    passwd root
    #启动sshd
    sshd
    echo "OpenSSH服务已启动！"
        #访问地址
    echo "访问地址: $ip_addr:8022"
    echo "用户名: root"
    echo "密码: 你刚刚设置的密码"
    echo "sshd" > $HOME/.bashrc
elif [ $ssh = "n" ]; then
    echo "SSH服务未开启！"
else
    echo "无操作"
fi



#判断是否已经安装了，安装询问用户是否重新安装
if [ -d "$HOME/ubuntu-fs" ]; then
    echo "检测到已安装 Ubuntu，是否重新安装？"
    echo "1) 重新安装"
    echo "2) 退出脚本"
    read -p "> " reinstall
    case $reinstall in
        1)
            # 删除已安装的 Ubuntu 文件系统
            rm -rf $HOME/ubuntu-fs
            ;;
        2)
            # 退出脚本
            exit 0
            ;;
        *)
            # 如果用户输入了无效的选项，则退出脚本
            echo "无效的选项，退出脚本。"
            exit 1
            ;;
    esac
fi


# 选择要安装的 Ubuntu 版本
echo "请选择要安装的 Ubuntu 版本："
echo "1) Ubuntu 18.04"
echo "2) Ubuntu 20.04"
echo "3) Ubuntu 22.04"
read -p "> " version

case $version in
    1)
        # 下载 Ubuntu 18.04 基础镜像
		ubuntu_version="bionic"
        axel -n 12 -o ubuntu-base-18.04-base-arm64.tar.gz http://cdimage.ubuntu.com/ubuntu-base/releases/18.04/release/ubuntu-base-18.04.5-base-arm64.tar.gz
        ;;
    2)
        # 下载 Ubuntu 20.04 基础镜像
		ubuntu_version="focal"
        axel -n 12 -o ubuntu-base-20.04-base-arm64.tar.gz http://cdimage.ubuntu.com/ubuntu-base/releases/20.04/release/ubuntu-base-20.04.5-base-arm64.tar.gz
        ;;
    3)
        # 下载 Ubuntu 22.04 基础镜像
		ubuntu_version="impish"
        axel -n 12 -o ubuntu-base-22.04-base-arm64.tar.gz http://cdimage.ubuntu.com/ubuntu-base/releases/22.04/release/ubuntu-base-22.04-base-arm64.tar.gz
        ;;
    *)
        # 如果用户输入了无效的选项，则退出脚本
        echo "无效的选项，退出脚本。"
        exit 1
        ;;
esac

# 解压 Ubuntu 基础镜像
mkdir -p $HOME/ubuntu-fs/binds
proot --link2symlink tar -xf $HOME/ubuntu-base-*base-arm64.tar.gz -C $HOME/ubuntu-fs --exclude='dev'

# 创建 resolv.conf 文件
echo "nameserver 1.1.1.1" >> $HOME/ubuntu-fs/etc/resolv.conf

echo "正在创建 stub 文件，请稍候..."
stubs=("usr/bin/groups")
for f in "${stubs[@]}"; do
    echo -e "#!/bin/sh\nexit" > "$HOME/ubuntu-fs/$f"
done
echo "所有 stub 文件均已成功创建！"

# 删除已下载的 Ubuntu 基础镜像
rm -f $HOME/ubuntu-base-*base-arm64.tar.gz


#配置Ubuntu各版本的软件源
# 判断 Ubuntu 版本并配置软件源
#/data/data/com.termux/files/home/ubuntu-fs/etc/apt/sources.list
#                            $HOME/ubuntu-fs/etc/apt/sources.list

function config_ubuntu_source() {
    echo "deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ $ubuntu_version main restricted universe multiverse" > $HOME/ubuntu-fs/etc/apt/sources.list
    echo "deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ $ubuntu_version-updates main restricted universe multiverse" >> $HOME/ubuntu-fs/etc/apt/sources.list
    echo "deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ $ubuntu_version-backports main restricted universe multiverse" >> $HOME/ubuntu-fs/etc/apt/sources.list
    echo "deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ $ubuntu_version-security main restricted universe multiverse" >> $HOME/ubuntu-fs/etc/apt/sources.list
}

function source_list() {
    #判断Ubuntu版本
    if [ $ubuntu_version = "bionic" ]; then
        config_ubuntu_source
    elif [ $ubuntu_version = "focal" ]; then
        config_ubuntu_source
    elif [ $ubuntu_version = "impish" ]; then
        echo "Ubuntu 22.04 尚未支持！"
    fi
    
}
# source_list
# 修复启动脚本中的 shebang 行并添加可执行权限
termux-fix-shebang $HOME/start.sh
chmod +x $HOME/start.sh

# 显示系统信息
screenfetch -A Ubuntu -L

# 将启动命令添加到 .bashrc 文件中
echo "bash ~/start.sh" >> $HOME/.bashrc
rm -f $HOME/Ubuntu.sh
bash